// pages/shoplist/shoplist.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 页面查询参数
    queryParam: {
      id: 1,
      name: '美食'
    },
    // 数据加载到了第几页
    pageNo: 0,
    // 每页有几条数据
    limit: 6,
    // 数据总条数，默认1，方便第一次初始化
    total: 1, 
    // 全部店铺列表
    shopList: [],
    // 下拉刷新节流标识
    isLoading: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 保存页面查询参数
    if( options) {
      this.setData({
        queryParam: options 
      })
    }
    // 初始化店铺列表
    this.nextPage()
  },

  // 开始加载
  startLoading() {
    this.setData({
      isLoading: true
    })
    wx.showLoading({
      title: '加载中...',
    })
  },
  // 加载完成
  stopLoading() {
    this.setData({
      isLoading: false
    })
    wx.hideLoading()
  },

  // 初始化店铺列表
  nextPage() {
    if(this.data.isLoading) {
      consolg.log('节流拦截')
      return;
    }
    // 判断数据是否达到总条数
    if(this.data.shopList.length >= this.data.total) {
      wx.showToast({
        title: '无更多数据',
        icon: 'none' // 只展示文本，不展示图标
      })
      return;
    }
    this.startLoading()
    wx.request({
      url: `http://localhost:8080/bendishenghuo/category/${this.data.queryParam.id}/shops/${this.data.pageNo}/${this.data.limit}`,
      method: "GET",
      success: resp => {
        console.log('nextPage: ', resp)
        this.setData({
          shopList: [...this.data.shopList, ...resp.data],
          pageNo: this.data.pageNo + 1,
          total: Number(resp.header['total'])
        })
      },
      complete: result => {
        // 关闭下拉刷新效果
        wx.stopPullDownRefresh()
        // 关闭loading效果
        this.stopLoading()
      }
    })
  },



  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    // 设置页面标题必须在onReady之后做，不能在onLoad中做，因为onReady函数是在初次渲染完成时回调的，必须在渲染完成后才能设置标题
    wx.setNavigationBarTitle({
      title: this.data.queryParam.name,
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      shopList: [],
      pageNo: 0,
      total: 1
    })
    this.nextPage()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    this.nextPage()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})